//
// Created on 2023/12/21.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef RENDERNODEGRAPH_NATIVE_NODE_H
#define RENDERNODEGRAPH_NATIVE_NODE_H

#include <native_window/external_window.h>
#include <native_drawing/drawing_bitmap.h>
#include <native_drawing/drawing_color.h>
#include <native_drawing/drawing_canvas.h>
#include <native_drawing/drawing_pen.h>
#include <native_drawing/drawing_brush.h>
#include <native_drawing/drawing_path.h>
#include <multimedia/image_framework/image/pixelmap_native.h>
#include <native_drawing/drawing_sampling_options.h>
#include <native_drawing/drawing_pixel_map.h>

class NativeNode {
public:
    OH_PixelmapNative* threadFunction(int count);
    void NativeOnDraw(OH_Drawing_Canvas *canvas, int32_t width, int32_t height);
    static NativeNode GetNodeById(int32_t id);

    OH_Drawing_Path *cPath_ = nullptr;
    OH_Drawing_Pen *cPen_ = nullptr;
    OH_Drawing_Brush *cBrush_ = nullptr;
    OH_Drawing_Bitmap *cBitmap = nullptr;
    OH_Drawing_Canvas *cCanvas = nullptr;
};

#endif // RENDERNODEGRAPH_NATIVE_NODE_H
